using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Text;
using Credinka.Ayni.SEA.EN;

namespace Credinka.Ayni.SEA.AD
{
    public class adPerfilMenu : adGeneral
    {

        public adPerfilMenu(SqlConnection con)
        {
            conexion = con;
        }

        public List<enPerfilMenu> fListar(enPerfilMenu poenPerfilMenu)
        {
            List<enPerfilMenu> loenPerfilMenu = null;
            SqlCommand cmd = new SqlCommand("sSEA_ConsultarPerfilMenu", conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@piNumeroPagina", SqlDbType.Int).Value = poenPerfilMenu.NumeroPagina;
            cmd.Parameters.Add("@piNumeroRegistros", SqlDbType.Int).Value = poenPerfilMenu.NumeroRegistros;
            SqlDataReader drd = cmd.ExecuteReader();
            if (drd != null)
            {
                int pos_TotalRegistros = drd.GetOrdinal("TotalRegistros");
                int pos_RowNumber = drd.GetOrdinal("RowNumber");
                int pos_dPerfilMenu = drd.GetOrdinal("IdPerfilMenu");
                int pos_IdPerfil = drd.GetOrdinal("iIdPerfil");
                int pos_IdMenu = drd.GetOrdinal("iIdMenu");
                int pos_CodigoEstado = drd.GetOrdinal("iCodigoEstado");

                loenPerfilMenu = new List<enPerfilMenu>();
                enPerfilMenu oenPerfilMenu;
                while (drd.Read())
                {
                    oenPerfilMenu = new enPerfilMenu();
                    oenPerfilMenu.TotalRegistros = drd.GetInt32(pos_TotalRegistros);
                    oenPerfilMenu.RowNumber = drd.GetInt32(pos_RowNumber);
                    oenPerfilMenu.IdPerfilMenu = drd.GetInt32(pos_dPerfilMenu);
                    oenPerfilMenu.IdPerfil = (drd.IsDBNull(pos_IdPerfil) ? 0 : drd.GetInt32(pos_IdPerfil));
                    oenPerfilMenu.IdMenu = (drd.IsDBNull(pos_IdMenu) ? 0 : drd.GetInt32(pos_IdMenu));
                    oenPerfilMenu.CodigoEstado = (drd.IsDBNull(pos_CodigoEstado) ? 0 : drd.GetInt32(pos_CodigoEstado));
                    loenPerfilMenu.Add(oenPerfilMenu);
                }
            }
            return (loenPerfilMenu);
        }

        public int fRegistrar(enPerfilMenu poenPerfilMenu)
        {
            int N = -1;
            SqlCommand cmd = new SqlCommand("sSEA_RegistrarPerfilMenu", conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@piiIdPerfil", SqlDbType.Int).Value = poenPerfilMenu.IdPerfil;
            cmd.Parameters.Add("@piiIdMenu", SqlDbType.Int).Value = poenPerfilMenu.IdMenu;
            cmd.Parameters.Add("@piiCodigoEstado", SqlDbType.Int).Value = poenPerfilMenu.CodigoEstado;
            cmd.Parameters.Add("@pivAudNombreUsuarioCreacion", SqlDbType.VarChar).Value = poenPerfilMenu.AudNombreUsuarioCreacion;
            cmd.Parameters.Add("@pivAudIPCreacion", SqlDbType.VarChar).Value = poenPerfilMenu.AudIPCreacion;
            cmd.Parameters.Add("@pivAudMacCreacion", SqlDbType.VarChar).Value = poenPerfilMenu.AudMacCreacion;
            N = cmd.ExecuteNonQuery();
            return N;
        }

        public int fEliminar(enPerfilMenu poenPerfilMenu)
        {
            int N = -1;
            SqlCommand cmd = new SqlCommand("sSEA_EliminarPerfilMenu", conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@piIdPerfilMenu", SqlDbType.Int).Value = poenPerfilMenu.IdPerfilMenu;
            cmd.Parameters.Add("@pivAudNombreUsuarioModificacion", SqlDbType.VarChar).Value = poenPerfilMenu.AudNombreUsuarioModificacion;
            cmd.Parameters.Add("@pivAudIPModificacion", SqlDbType.VarChar).Value = poenPerfilMenu.AudIPModificacion;
            cmd.Parameters.Add("@pivAudMacModificacion", SqlDbType.VarChar).Value = poenPerfilMenu.AudMacModificacion;
            N = cmd.ExecuteNonQuery();
            return N;
        }

        public int fContar()
        {
            int totalPerfilMenu;
            SqlCommand cmd = new SqlCommand("sSEA_ContarPerfilMenu", conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            totalPerfilMenu = (int)cmd.ExecuteScalar();
            return (totalPerfilMenu);
        }
    }
}
